home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-04-20 | 62.4 KB | 1,571 lines |
-
-
-
-
-
-
- Network Working Group T. Socolofsky
- Request for Comments: 1180 C. Kale
- Spider Systems Limited
- January 1991
-
-
- A TCP/IP Tutorial
-
- Status of this Memo
-
- This RFC is a tutorial on the TCP/IP protocol suite, focusing
- particularly on the steps in forwarding an IP datagram from source
- host to destination host through a router. It does not specify an
- Internet standard. Distribution of this memo is unlimited.
-
- Table of Contents
-
- 1. Introduction................................................ 1
- 2. TCP/IP Overview............................................. 2
- 3. Ethernet.................................................... 8
- 4. ARP......................................................... 9
- 5. Internet Protocol........................................... 12
- 6. User Datagram Protocol...................................... 22
- 7. Transmission Control Protocol............................... 24
- 8. Network Applications........................................ 25
- 9. Other Information........................................... 27
- 10. References.................................................. 27
- 11. Relation to other RFCs...................................... 27
- 12. Security Considerations..................................... 27
- 13. Authors' Addresses.......................................... 28
-
- 1. Introduction
-
- This tutorial contains only one view of the salient points of TCP/IP,
- and therefore it is the "bare bones" of TCP/IP technology. It omits
- the history of development and funding, the business case for its
- use, and its future as compared to ISO OSI. Indeed, a great deal of
- technical information is also omitted. What remains is a minimum of
- information that must be understood by the professional working in a
- TCP/IP environment. These professionals include the systems
- administrator, the systems programmer, and the network manager.
-
- This tutorial uses examples from the UNIX TCP/IP environment, however
- the main points apply across all implementations of TCP/IP.
-
- Note that the purpose of this memo is explanation, not definition.
- If any question arises about the correct specification of a protocol,
- please refer to the actual standards defining RFC.
-
-
-
- Socolofsky & Kale [Page 1]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- The next section is an overview of TCP/IP, followed by detailed
- descriptions of individual components.
-
- 2. TCP/IP Overview
-
- The generic term "TCP/IP" usually means anything and everything
- related to the specific protocols of TCP and IP. It can include
- other protocols, applications, and even the network medium. A sample
- of these protocols are: UDP, ARP, and ICMP. A sample of these
- applications are: TELNET, FTP, and rcp. A more accurate term is
- "internet technology". A network that uses internet technology is
- called an "internet".
-
- 2.1 Basic Structure
-
- To understand this technology you must first understand the following
- logical structure:
-
- ----------------------------
- | network applications |
- | |
- |... \ | / .. \ | / ...|
- | ----- ----- |
- | |TCP| |UDP| |
- | ----- ----- |
- | \ / |
- | -------- |
- | | IP | |
- | ----- -*------ |
- | |ARP| | |
- | ----- | |
- | \ | |
- | ------ |
- | |ENET| |
- | ---@-- |
- ----------|-----------------
- |
- ----------------------o---------
- Ethernet Cable
-
- Figure 1. Basic TCP/IP Network Node
-
- This is the logical structure of the layered protocols inside a
- computer on an internet. Each computer that can communicate using
- internet technology has such a logical structure. It is this logical
- structure that determines the behavior of the computer on the
- internet. The boxes represent processing of the data as it passes
- through the computer, and the lines connecting boxes show the path of
-
-
-
- Socolofsky & Kale [Page 2]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- data. The horizontal line at the bottom represents the Ethernet
- cable; the "o" is the transceiver. The "*" is the IP address and the
- "@" is the Ethernet address. Understanding this logical structure is
- essential to understanding internet technology; it is referred to
- throughout this tutorial.
-
- 2.2 Terminology
-
- The name of a unit of data that flows through an internet is
- dependent upon where it exists in the protocol stack. In summary: if
- it is on an Ethernet it is called an Ethernet frame; if it is between
- the Ethernet driver and the IP module it is called a IP packet; if it
- is between the IP module and the UDP module it is called a UDP
- datagram; if it is between the IP module and the TCP module it is
- called a TCP segment (more generally, a transport message); and if it
- is in a network application it is called a application message.
-
- These definitions are imperfect. Actual definitions vary from one
- publication to the next. More specific definitions can be found in
- RFC 1122, section 1.3.3.
-
- A driver is software that communicates directly with the network
- interface hardware. A module is software that communicates with a
- driver, with network applications, or with another module.
-
- The terms driver, module, Ethernet frame, IP packet, UDP datagram,
- TCP message, and application message are used where appropriate
- throughout this tutorial.
-
- 2.3 Flow of Data
-
- Let's follow the data as it flows down through the protocol stack
- shown in Figure 1. For an application that uses TCP (Transmission
- Control Protocol), data passes between the application and the TCP
- module. For applications that use UDP (User Datagram Protocol), data
- passes between the application and the UDP module. FTP (File
- Transfer Protocol) is a typical application that uses TCP. Its
- protocol stack in this example is FTP/TCP/IP/ENET. SNMP (Simple
- Network Management Protocol) is an application that uses UDP. Its
- protocol stack in this example is SNMP/UDP/IP/ENET.
-
- The TCP module, UDP module, and the Ethernet driver are n-to-1
- multiplexers. As multiplexers they switch many inputs to one output.
- They are also 1-to-n de-multiplexers. As de-multiplexers they switch
- one input to many outputs according to the type field in the protocol
- header.
-
-
-
-
-
- Socolofsky & Kale [Page 3]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- 1 2 3 ... n 1 2 3 ... n
- \ | / | \ | | / ^
- \ | | / | \ | | / |
- ------------- flow ---------------- flow
- |multiplexer| of |de-multiplexer| of
- ------------- data ---------------- data
- | | | |
- | v | |
- 1 1
-
- Figure 2. n-to-1 multiplexer and 1-to-n de-multiplexer
-
- If an Ethernet frame comes up into the Ethernet driver off the
- network, the packet can be passed upwards to either the ARP (Address
- Resolution Protocol) module or to the IP (Internet Protocol) module.
- The value of the type field in the Ethernet frame determines whether
- the Ethernet frame is passed to the ARP or the IP module.
-
- If an IP packet comes up into IP, the unit of data is passed upwards
- to either TCP or UDP, as determined by the value of the protocol
- field in the IP header.
-
- If the UDP datagram comes up into UDP, the application message is
- passed upwards to the network application based on the value of the
- port field in the UDP header. If the TCP message comes up into TCP,
- the application message is passed upwards to the network application
- based on the value of the port field in the TCP header.
-
- The downwards multiplexing is simple to perform because from each
- starting point there is only the one downward path; each protocol
- module adds its header information so the packet can be de-
- multiplexed at the destination computer.
-
- Data passing out from the applications through either TCP or UDP
- converges on the IP module and is sent downwards through the lower
- network interface driver.
-
- Although internet technology supports many different network media,
- Ethernet is used for all examples in this tutorial because it is the
- most common physical network used under IP. The computer in Figure 1
- has a single Ethernet connection. The 6-byte Ethernet address is
- unique for each interface on an Ethernet and is located at the lower
- interface of the Ethernet driver.
-
- The computer also has a 4-byte IP address. This address is located
- at the lower interface to the IP module. The IP address must be
- unique for an internet.
-
-
-
-
- Socolofsky & Kale [Page 4]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- A running computer always knows its own IP address and Ethernet
- address.
-
- 2.4 Two Network Interfaces
-
- If a computer is connected to 2 separate Ethernets it is as in Figure
- 3.
-
- ----------------------------
- | network applications |
- | |
- |... \ | / .. \ | / ...|
- | ----- ----- |
- | |TCP| |UDP| |
- | ----- ----- |
- | \ / |
- | -------- |
- | | IP | |
- | ----- -*----*- ----- |
- | |ARP| | | |ARP| |
- | ----- | | ----- |
- | \ | | / |
- | ------ ------ |
- | |ENET| |ENET| |
- | ---@-- ---@-- |
- ----------|-------|---------
- | |
- | ---o---------------------------
- | Ethernet Cable 2
- ---------------o----------
- Ethernet Cable 1
-
- Figure 3. TCP/IP Network Node on 2 Ethernets
-
- Please note that this computer has 2 Ethernet addresses and 2 IP
- addresses.
-
- It is seen from this structure that for computers with more than one
- physical network interface, the IP module is both a n-to-m
- multiplexer and an m-to-n de-multiplexer.
-
-
-
-
-
-
-
-
-
-
-
- Socolofsky & Kale [Page 5]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- 1 2 3 ... n 1 2 3 ... n
- \ | | / | \ | | / ^
- \ | | / | \ | | / |
- ------------- flow ---------------- flow
- |multiplexer| of |de-multiplexer| of
- ------------- data ---------------- data
- / | | \ | / | | \ |
- / | | \ v / | | \ |
- 1 2 3 ... m 1 2 3 ... m
-
- Figure 4. n-to-m multiplexer and m-to-n de-multiplexer
-
- It performs this multiplexing in either direction to accommodate
- incoming and outgoing data. An IP module with more than 1 network
- interface is more complex than our original example in that it can
- forward data onto the next network. Data can arrive on any network
- interface and be sent out on any other.
-
- TCP UDP
- \ /
- \ /
- --------------
- | IP |
- | |
- | --- |
- | / \ |
- | / v |
- --------------
- / \
- / \
- data data
- comes in goes out
- here here
-
- Figure 5. Example of IP Forwarding a IP Packet
-
- The process of sending an IP packet out onto another network is
- called "forwarding" an IP packet. A computer that has been dedicated
- to the task of forwarding IP packets is called an "IP-router".
-
- As you can see from the figure, the forwarded IP packet never touches
- the TCP and UDP modules on the IP-router. Some IP-router
- implementations do not have a TCP or UDP module.
-
- 2.5 IP Creates a Single Logical Network
-
- The IP module is central to the success of internet technology. Each
- module or driver adds its header to the message as the message passes
-
-
-
- Socolofsky & Kale [Page 6]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- down through the protocol stack. Each module or driver strips the
- corresponding header from the message as the message climbs the
- protocol stack up towards the application. The IP header contains
- the IP address, which builds a single logical network from multiple
- physical networks. This interconnection of physical networks is the
- source of the name: internet. A set of interconnected physical
- networks that limit the range of an IP packet is called an
- "internet".
-
- 2.6 Physical Network Independence
-
- IP hides the underlying network hardware from the network
- applications. If you invent a new physical network, you can put it
- into service by implementing a new driver that connects to the
- internet underneath IP. Thus, the network applications remain intact
- and are not vulnerable to changes in hardware technology.
-
- 2.7 Interoperability
-
- If two computers on an internet can communicate, they are said to
- "interoperate"; if an implementation of internet technology is good,
- it is said to have "interoperability". Users of general-purpose
- computers benefit from the installation of an internet because of the
- interoperability in computers on the market. Generally, when you buy
- a computer, it will interoperate. If the computer does not have
- interoperability, and interoperability can not be added, it occupies
- a rare and special niche in the market.
-
- 2.8 After the Overview
-
- With the background set, we will answer the following questions:
-
- When sending out an IP packet, how is the destination Ethernet
- address determined?
-
- How does IP know which of multiple lower network interfaces to use
- when sending out an IP packet?
-
- How does a client on one computer reach the server on another?
-
- Why do both TCP and UDP exist, instead of just one or the other?
-
- What network applications are available?
-
- These will be explained, in turn, after an Ethernet refresher.
-
-
-
-
-
-
- Socolofsky & Kale [Page 7]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- 3. Ethernet
-
- This section is a short review of Ethernet technology.
-
- An Ethernet frame contains the destination address, source address,
- type field, and data.
-
- An Ethernet address is 6 bytes. Every device has its own Ethernet
- address and listens for Ethernet frames with that destination
- address. All devices also listen for Ethernet frames with a wild-
- card destination address of "FF-FF-FF-FF-FF-FF" (in hexadecimal),
- called a "broadcast" address.
-
- Ethernet uses CSMA/CD (Carrier Sense and Multiple Access with
- Collision Detection). CSMA/CD means that all devices communicate on
- a single medium, that only one can transmit at a time, and that they
- can all receive simultaneously. If 2 devices try to transmit at the
- same instant, the transmit collision is detected, and both devices
- wait a random (but short) period before trying to transmit again.
-
- 3.1 A Human Analogy
-
- A good analogy of Ethernet technology is a group of people talking in
- a small, completely dark room. In this analogy, the physical network
- medium is sound waves on air in the room instead of electrical
- signals on a coaxial cable.
-
- Each person can hear the words when another is talking (Carrier
- Sense). Everyone in the room has equal capability to talk (Multiple
- Access), but none of them give lengthy speeches because they are
- polite. If a person is impolite, he is asked to leave the room
- (i.e., thrown off the net).
-
- No one talks while another is speaking. But if two people start
- speaking at the same instant, each of them know this because each
- hears something they haven't said (Collision Detection). When these
- two people notice this condition, they wait for a moment, then one
- begins talking. The other hears the talking and waits for the first
- to finish before beginning his own speech.
-
- Each person has an unique name (unique Ethernet address) to avoid
- confusion. Every time one of them talks, he prefaces the message
- with the name of the person he is talking to and with his own name
- (Ethernet destination and source address, respectively), i.e., "Hello
- Jane, this is Jack, ..blah blah blah...". If the sender wants to
- talk to everyone he might say "everyone" (broadcast address), i.e.,
- "Hello Everyone, this is Jack, ..blah blah blah...".
-
-
-
-
- Socolofsky & Kale [Page 8]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- 4. ARP
-
- When sending out an IP packet, how is the destination Ethernet
- address determined?
-
- ARP (Address Resolution Protocol) is used to translate IP addresses
- to Ethernet addresses. The translation is done only for outgoing IP
- packets, because this is when the IP header and the Ethernet header
- are created.
-
- 4.1 ARP Table for Address Translation
-
- The translation is performed with a table look-up. The table, called
- the ARP table, is stored in memory and contains a row for each
- computer. There is a column for IP address and a column for Ethernet
- address. When translating an IP address to an Ethernet address, the
- table is searched for a matching IP address. The following is a
- simplified ARP table:
-
- ------------------------------------
- |IP address Ethernet address |
- ------------------------------------
- |223.1.2.1 08-00-39-00-2F-C3|
- |223.1.2.3 08-00-5A-21-A7-22|
- |223.1.2.4 08-00-10-99-AC-54|
- ------------------------------------
- TABLE 1. Example ARP Table
-
- The human convention when writing out the 4-byte IP address is each
- byte in decimal and separating bytes with a period. When writing out
- the 6-byte Ethernet address, the conventions are each byte in
- hexadecimal and separating bytes with either a minus sign or a colon.
-
- The ARP table is necessary because the IP address and Ethernet
- address are selected independently; you can not use an algorithm to
- translate IP address to Ethernet address. The IP address is selected
- by the network manager based on the location of the computer on the
- internet. When the computer is moved to a different part of an
- internet, its IP address must be changed. The Ethernet address is
- selected by the manufacturer based on the Ethernet address space
- licensed by the manufacturer. When the Ethernet hardware interface
- board changes, the Ethernet address changes.
-
- 4.2 Typical Translation Scenario
-
- During normal operation a network application, such as TELNET, sends
- an application message to TCP, then TCP sends the corresponding TCP
- message to the IP module. The destination IP address is known by the
-
-
-
- Socolofsky & Kale [Page 9]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- application, the TCP module, and the IP module. At this point the IP
- packet has been constructed and is ready to be given to the Ethernet
- driver, but first the destination Ethernet address must be
- determined.
-
- The ARP table is used to look-up the destination Ethernet address.
-
- 4.3 ARP Request/Response Pair
-
- But how does the ARP table get filled in the first place? The answer
- is that it is filled automatically by ARP on an "as-needed" basis.
-
- Two things happen when the ARP table can not be used to translate an
- address:
-
- 1. An ARP request packet with a broadcast Ethernet address is sent
- out on the network to every computer.
-
- 2. The outgoing IP packet is queued.
-
- Every computer's Ethernet interface receives the broadcast Ethernet
- frame. Each Ethernet driver examines the Type field in the Ethernet
- frame and passes the ARP packet to the ARP module. The ARP request
- packet says "If your IP address matches this target IP address, then
- please tell me your Ethernet address". An ARP request packet looks
- something like this:
-
- ---------------------------------------
- |Sender IP Address 223.1.2.1 |
- |Sender Enet Address 08-00-39-00-2F-C3|
- ---------------------------------------
- |Target IP Address 223.1.2.2 |
- |Target Enet Address <blank> |
- ---------------------------------------
- TABLE 2. Example ARP Request
-
- Each ARP module examines the IP address and if the Target IP address
- matches its own IP address, it sends a response directly to the
- source Ethernet address. The ARP response packet says "Yes, that
- target IP address is mine, let me give you my Ethernet address". An
- ARP response packet has the sender/target field contents swapped as
- compared to the request. It looks something like this:
-
-
-
-
-
-
-
-
-
- Socolofsky & Kale [Page 10]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- ---------------------------------------
- |Sender IP Address 223.1.2.2 |
- |Sender Enet Address 08-00-28-00-38-A9|
- ---------------------------------------
- |Target IP Address 223.1.2.1 |
- |Target Enet Address 08-00-39-00-2F-C3|
- ---------------------------------------
- TABLE 3. Example ARP Response
-
- The response is received by the original sender computer. The
- Ethernet driver looks at the Type field in the Ethernet frame then
- passes the ARP packet to the ARP module. The ARP module examines the
- ARP packet and adds the sender's IP and Ethernet addresses to its ARP
- table.
-
- The updated table now looks like this:
-
- ----------------------------------
- |IP address Ethernet address |
- ----------------------------------
- |223.1.2.1 08-00-39-00-2F-C3|
- |223.1.2.2 08-00-28-00-38-A9|
- |223.1.2.3 08-00-5A-21-A7-22|
- |223.1.2.4 08-00-10-99-AC-54|
- ----------------------------------
- TABLE 4. ARP Table after Response
-
- 4.4 Scenario Continued
-
- The new translation has now been installed automatically in the
- table, just milli-seconds after it was needed. As you remember from
- step 2 above, the outgoing IP packet was queued. Next, the IP
- address to Ethernet address translation is performed by look-up in
- the ARP table then the Ethernet frame is transmitted on the Ethernet.
- Therefore, with the new steps 3, 4, and 5, the scenario for the
- sender computer is:
-
- 1. An ARP request packet with a broadcast Ethernet address is sent
- out on the network to every computer.
-
- 2. The outgoing IP packet is queued.
-
- 3. The ARP response arrives with the IP-to-Ethernet address
- translation for the ARP table.
-
-
-
-
-
-
-
- Socolofsky & Kale [Page 11]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- 4. For the queued IP packet, the ARP table is used to translate the
- IP address to the Ethernet address.
-
- 5. The Ethernet frame is transmitted on the Ethernet.
-
- In summary, when the translation is missing from the ARP table, one
- IP packet is queued. The translation data is quickly filled in with
- ARP request/response and the queued IP packet is transmitted.
-
- Each computer has a separate ARP table for each of its Ethernet
- interfaces. If the target computer does not exist, there will be no
- ARP response and no entry in the ARP table. IP will discard outgoing
- IP packets sent to that address. The upper layer protocols can't
- tell the difference between a broken Ethernet and the absence of a
- computer with the target IP address.
-
- Some implementations of IP and ARP don't queue the IP packet while
- waiting for the ARP response. Instead the IP packet is discarded and
- the recovery from the IP packet loss is left to the TCP module or the
- UDP network application. This recovery is performed by time-out and
- retransmission. The retransmitted message is successfully sent out
- onto the network because the first copy of the message has already
- caused the ARP table to be filled.
-
- 5. Internet Protocol
-
- The IP module is central to internet technology and the essence of IP
- is its route table. IP uses this in-memory table to make all
- decisions about routing an IP packet. The content of the route table
- is defined by the network administrator. Mistakes block
- communication.
-
- To understand how a route table is used is to understand
- internetworking. This understanding is necessary for the successful
- administration and maintenance of an IP network.
-
- The route table is best understood by first having an overview of
- routing, then learning about IP network addresses, and then looking
- at the details.
-
- 5.1 Direct Routing
-
- The figure below is of a tiny internet with 3 computers: A, B, and C.
- Each computer has the same TCP/IP protocol stack as in Figure 1.
- Each computer's Ethernet interface has its own Ethernet address.
- Each computer has an IP address assigned to the IP interface by the
- network manager, who also has assigned an IP network number to the
- Ethernet.
-
-
-
- Socolofsky & Kale [Page 12]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- A B C
- | | |
- --o------o------o--
- Ethernet 1
- IP network "development"
-
- Figure 6. One IP Network
-
- When A sends an IP packet to B, the IP header contains A's IP address
- as the source IP address, and the Ethernet header contains A's
- Ethernet address as the source Ethernet address. Also, the IP header
- contains B's IP address as the destination IP address and the
- Ethernet header contains B's Ethernet address as the destination
- Ethernet address.
-
- ----------------------------------------
- |address source destination|
- ----------------------------------------
- |IP header A B |
- |Ethernet header A B |
- ----------------------------------------
- TABLE 5. Addresses in an Ethernet frame for an IP packet
- from A to B
-
- For this simple case, IP is overhead because the IP adds little to
- the service offered by Ethernet. However, IP does add cost: the
- extra CPU processing and network bandwidth to generate, transmit, and
- parse the IP header.
-
- When B's IP module receives the IP packet from A, it checks the
- destination IP address against its own, looking for a match, then it
- passes the datagram to the upper-level protocol.
-
- This communication between A and B uses direct routing.
-
- 5.2 Indirect Routing
-
- The figure below is a more realistic view of an internet. It is
- composed of 3 Ethernets and 3 IP networks connected by an IP-router
- called computer D. Each IP network has 4 computers; each computer
- has its own IP address and Ethernet address.
-
-
-
-
-
-
-
-
-
-
- Socolofsky & Kale [Page 13]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- A B C ----D---- E F G
- | | | | | | | | |
- --o------o------o------o- | -o------o------o------o--
- Ethernet 1 | Ethernet 2
- IP network "development" | IP network "accounting"
- |
- |
- | H I J
- | | | |
- --o-----o------o------o--
- Ethernet 3
- IP network "factory"
-
- Figure 7. Three IP Networks; One internet
-
- Except for computer D, each computer has a TCP/IP protocol stack like
- that in Figure 1. Computer D is the IP-router; it is connected to
- all 3 networks and therefore has 3 IP addresses and 3 Ethernet
- addresses. Computer D has a TCP/IP protocol stack similar to that in
- Figure 3, except that it has 3 ARP modules and 3 Ethernet drivers
- instead of 2. Please note that computer D has only one IP module.
-
- The network manager has assigned a unique number, called an IP
- network number, to each of the Ethernets. The IP network numbers are
- not shown in this diagram, just the network names.
-
- When computer A sends an IP packet to computer B, the process is
- identical to the single network example above. Any communication
- between computers located on a single IP network matches the direct
- routing example discussed previously.
-
- When computer D and A communicate, it is direct communication. When
- computer D and E communicate, it is direct communication. When
- computer D and H communicate, it is direct communication. This is
- because each of these pairs of computers is on the same IP network.
-
- However, when computer A communicates with a computer on the far side
- of the IP-router, communication is no longer direct. A must use D to
- forward the IP packet to the next IP network. This communication is
- called "indirect".
-
- This routing of IP packets is done by IP modules and happens
- transparently to TCP, UDP, and the network applications.
-
- If A sends an IP packet to E, the source IP address and the source
- Ethernet address are A's. The destination IP address is E's, but
- because A's IP module sends the IP packet to D for forwarding, the
- destination Ethernet address is D's.
-
-
-
- Socolofsky & Kale [Page 14]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- ----------------------------------------
- |address source destination|
- ----------------------------------------
- |IP header A E |
- |Ethernet header A D |
- ----------------------------------------
- TABLE 6. Addresses in an Ethernet frame for an IP packet
- from A to E (before D)
-
- D's IP module receives the IP packet and upon examining the
- destination IP address, says "This is not my IP address," and sends
- the IP packet directly to E.
-
- ----------------------------------------
- |address source destination|
- ----------------------------------------
- |IP header A E |
- |Ethernet header D E |
- ----------------------------------------
- TABLE 7. Addresses in an Ethernet frame for an IP packet
- from A to E (after D)
-
- In summary, for direct communication, both the source IP address and
- the source Ethernet address is the sender's, and the destination IP
- address and the destination Ethernet address is the recipient's. For
- indirect communication, the IP address and Ethernet addresses do not
- pair up in this way.
-
- This example internet is a very simple one. Real networks are often
- complicated by many factors, resulting in multiple IP-routers and
- several types of physical networks. This example internet might have
- come about because the network manager wanted to split a large
- Ethernet in order to localize Ethernet broadcast traffic.
-
- 5.3 IP Module Routing Rules
-
- This overview of routing has shown what happens, but not how it
- happens. Now let's examine the rules, or algorithm, used by the IP
- module.
-
- For an outgoing IP packet, entering IP from an upper layer, IP must
- decide whether to send the IP packet directly or indirectly, and IP
- must choose a lower network interface. These choices are made by
- consulting the route table.
-
- For an incoming IP packet, entering IP from a lower interface, IP
- must decide whether to forward the IP packet or pass it to an upper
- layer. If the IP packet is being forwarded, it is treated as an
-
-
-
- Socolofsky & Kale [Page 15]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- outgoing IP packet.
-
- When an incoming IP packet arrives it is never forwarded back out
- through the same network interface.
-
- These decisions are made before the IP packet is handed to the lower
- interface and before the ARP table is consulted.
-
- 5.4 IP Address
-
- The network manager assigns IP addresses to computers according to
- the IP network to which the computer is attached. One part of a 4-
- byte IP address is the IP network number, the other part is the IP
- computer number (or host number). For the computer in table 1, with
- an IP address of 223.1.2.1, the network number is 223.1.2 and the
- host number is number 1.
-
- The portion of the address that is used for network number and for
- host number is defined by the upper bits in the 4-byte address. All
- example IP addresses in this tutorial are of type class C, meaning
- that the upper 3 bits indicate that 21 bits are the network number
- and 8 bits are the host number. This allows 2,097,152 class C
- networks up to 254 hosts on each network.
-
- The IP address space is administered by the NIC (Network Information
- Center). All internets that are connected to the single world-wide
- Internet must use network numbers assigned by the NIC. If you are
- setting up your own internet and you are not intending to connect it
- to the Internet, you should still obtain your network numbers from
- the NIC. If you pick your own number, you run the risk of confusion
- and chaos in the eventuality that your internet is connected to
- another internet.
-
- 5.5 Names
-
- People refer to computers by names, not numbers. A computer called
- alpha might have the IP address of 223.1.2.1. For small networks,
- this name-to-address translation data is often kept on each computer
- in the "hosts" file. For larger networks, this translation data file
- is stored on a server and accessed across the network when needed. A
- few lines from that file might look like this:
-
- 223.1.2.1 alpha
- 223.1.2.2 beta
- 223.1.2.3 gamma
- 223.1.2.4 delta
- 223.1.3.2 epsilon
- 223.1.4.2 iota
-
-
-
- Socolofsky & Kale [Page 16]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- The IP address is the first column and the computer name is the
- second column.
-
- In most cases, you can install identical "hosts" files on all
- computers. You may notice that "delta" has only one entry in this
- file even though it has 3 IP addresses. Delta can be reached with
- any of its IP addresses; it does not matter which one is used. When
- delta receives an IP packet and looks at the destination address, it
- will recognize any of its own IP addresses.
-
- IP networks are also given names. If you have 3 IP networks, your
- "networks" file for documenting these names might look something like
- this:
-
- 223.1.2 development
- 223.1.3 accounting
- 223.1.4 factory
-
- The IP network number is in the first column and its name is in the
- second column.
-
- From this example you can see that alpha is computer number 1 on the
- development network, beta is computer number 2 on the development
- network and so on. You might also say that alpha is development.1,
- Beta is development.2, and so on.
-
- The above hosts file is adequate for the users, but the network
- manager will probably replace the line for delta with:
-
- 223.1.2.4 devnetrouter delta
- 223.1.3.1 facnetrouter
- 223.1.4.1 accnetrouter
-
- These three new lines for the hosts file give each of delta's IP
- addresses a meaningful name. In fact, the first IP address listed
- has 2 names; "delta" and "devnetrouter" are synonyms. In practice
- "delta" is the general-purpose name of the computer and the other 3
- names are only used when administering the IP route table.
-
- These files are used by network administration commands and network
- applications to provide meaningful names. They are not required for
- operation of an internet, but they do make it easier for us.
-
- 5.6 IP Route Table
-
- How does IP know which lower network interface to use when sending
- out a IP packet? IP looks it up in the route table using a search
- key of the IP network number extracted from the IP destination
-
-
-
- Socolofsky & Kale [Page 17]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- address.
-
- The route table contains one row for each route. The primary columns
- in the route table are: IP network number, direct/indirect flag,
- router IP address, and interface number. This table is referred to
- by IP for each outgoing IP packet.
-
- On most computers the route table can be modified with the "route"
- command. The content of the route table is defined by the network
- manager, because the network manager assigns the IP addresses to the
- computers.
-
- 5.7 Direct Routing Details
-
- To explain how it is used, let us visit in detail the routing
- situations we have reviewed previously.
-
- --------- ---------
- | alpha | | beta |
- | 1 | | 1 |
- --------- ---------
- | |
- --------o---------------o-
- Ethernet 1
- IP network "development"
-
- Figure 8. Close-up View of One IP Network
-
- The route table inside alpha looks like this:
-
- --------------------------------------------------------------
- |network direct/indirect flag router interface number|
- --------------------------------------------------------------
- |development direct <blank> 1 |
- --------------------------------------------------------------
- TABLE 8. Example Simple Route Table
-
- This view can be seen on some UNIX systems with the "netstat -r"
- command. With this simple network, all computers have identical
- routing tables.
-
- For discussion, the table is printed again without the network number
- translated to its network name.
-
-
-
-
-
-
-
-
- Socolofsky & Kale [Page 18]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- --------------------------------------------------------------
- |network direct/indirect flag router interface number|
- --------------------------------------------------------------
- |223.1.2 direct <blank> 1 |
- --------------------------------------------------------------
- TABLE 9. Example Simple Route Table with Numbers
-
- 5.8 Direct Scenario
-
- Alpha is sending an IP packet to beta. The IP packet is in alpha's
- IP module and the destination IP address is beta or 223.1.2.2. IP
- extracts the network portion of this IP address and scans the first
- column of the table looking for a match. With this network a match
- is found on the first entry.
-
- The other information in this entry indicates that computers on this
- network can be reached directly through interface number 1. An ARP
- table translation is done on beta's IP address then the Ethernet
- frame is sent directly to beta via interface number 1.
-
- If an application tries to send data to an IP address that is not on
- the development network, IP will be unable to find a match in the
- route table. IP then discards the IP packet. Some computers provide
- a "Network not reachable" error message.
-
- 5.9 Indirect Routing Details
-
- Now, let's take a closer look at the more complicated routing
- scenario that we examined previously.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Socolofsky & Kale [Page 19]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- --------- --------- ---------
- | alpha | | delta | |epsilon|
- | 1 | |1 2 3| | 1 |
- --------- --------- ---------
- | | | | |
- --------o---------------o- | -o----------------o--------
- Ethernet 1 | Ethernet 2
- IP network "Development" | IP network "accounting"
- |
- | --------
- | | iota |
- | | 1 |
- | --------
- | |
- --o--------o--------
- Ethernet 3
- IP network "factory"
-
- Figure 9. Close-up View of Three IP Networks
-
- The route table inside alpha looks like this:
-
- ---------------------------------------------------------------------
- |network direct/indirect flag router interface number|
- ---------------------------------------------------------------------
- |development direct <blank> 1 |
- |accounting indirect devnetrouter 1 |
- |factory indirect devnetrouter 1 |
- ---------------------------------------------------------------------
- TABLE 10. Alpha Route Table
-
- For discussion the table is printed again using numbers instead of
- names.
-
- --------------------------------------------------------------------
- |network direct/indirect flag router interface number|
- --------------------------------------------------------------------
- |223.1.2 direct <blank> 1 |
- |223.1.3 indirect 223.1.2.4 1 |
- |223.1.4 indirect 223.1.2.4 1 |
- --------------------------------------------------------------------
- TABLE 11. Alpha Route Table with Numbers
-
- The router in Alpha's route table is the IP address of delta's
- connection to the development network.
-
-
-
-
-
-
- Socolofsky & Kale [Page 20]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- 5.10 Indirect Scenario
-
- Alpha is sending an IP packet to epsilon. The IP packet is in
- alpha's IP module and the destination IP address is epsilon
- (223.1.3.2). IP extracts the network portion of this IP address
- (223.1.3) and scans the first column of the table looking for a
- match. A match is found on the second entry.
-
- This entry indicates that computers on the 223.1.3 network can be
- reached through the IP-router devnetrouter. Alpha's IP module then
- does an ARP table translation for devnetrouter's IP address and sends
- the IP packet directly to devnetrouter through Alpha's interface
- number 1. The IP packet still contains the destination address of
- epsilon.
-
- The IP packet arrives at delta's development network interface and is
- passed up to delta's IP module. The destination IP address is
- examined and because it does not match any of delta's own IP
- addresses, delta decides to forward the IP packet.
-
- Delta's IP module extracts the network portion of the destination IP
- address (223.1.3) and scans its route table for a matching network
- field. Delta's route table looks like this:
-
- ----------------------------------------------------------------------
- |network direct/indirect flag router interface number|
- ----------------------------------------------------------------------
- |development direct <blank> 1 |
- |factory direct <blank> 3 |
- |accounting direct <blank> 2 |
- ----------------------------------------------------------------------
- TABLE 12. Delta's Route Table
-
- Below is delta's table printed again, without the translation to
- names.
-
- ----------------------------------------------------------------------
- |network direct/indirect flag router interface number|
- ----------------------------------------------------------------------
- |223.1.2 direct <blank> 1 |
- |223.1.3 direct <blank> 3 |
- |223.1.4 direct <blank> 2 |
- ----------------------------------------------------------------------
- TABLE 13. Delta's Route Table with Numbers
-
- The match is found on the second entry. IP then sends the IP packet
- directly to epsilon through interface number 3. The IP packet
- contains the IP destination address of epsilon and the Ethernet
-
-
-
- Socolofsky & Kale [Page 21]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- destination address of epsilon.
-
- The IP packet arrives at epsilon and is passed up to epsilon's IP
- module. The destination IP address is examined and found to match
- with epsilon's IP address, so the IP packet is passed to the upper
- protocol layer.
-
- 5.11 Routing Summary
-
- When a IP packet travels through a large internet it may go through
- many IP-routers before it reaches its destination. The path it takes
- is not determined by a central source but is a result of consulting
- each of the routing tables used in the journey. Each computer
- defines only the next hop in the journey and relies on that computer
- to send the IP packet on its way.
-
- 5.12 Managing the Routes
-
- Maintaining correct routing tables on all computers in a large
- internet is a difficult task; network configuration is being modified
- constantly by the network managers to meet changing needs. Mistakes
- in routing tables can block communication in ways that are
- excruciatingly tedious to diagnose.
-
- Keeping a simple network configuration goes a long way towards making
- a reliable internet. For instance, the most straightforward method
- of assigning IP networks to Ethernet is to assign a single IP network
- number to each Ethernet.
-
- Help is also available from certain protocols and network
- applications. ICMP (Internet Control Message Protocol) can report
- some routing problems. For small networks the route table is filled
- manually on each computer by the network administrator. For larger
- networks the network administrator automates this manual operation
- with a routing protocol to distribute routes throughout a network.
-
- When a computer is moved from one IP network to another, its IP
- address must change. When a computer is removed from an IP network
- its old address becomes invalid. These changes require frequent
- updates to the "hosts" file. This flat file can become difficult to
- maintain for even medium-size networks. The Domain Name System helps
- solve these problems.
-
- 6. User Datagram Protocol
-
- UDP is one of the two main protocols to reside on top of IP. It
- offers service to the user's network applications. Example network
- applications that use UDP are: Network File System (NFS) and Simple
-
-
-
- Socolofsky & Kale [Page 22]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- Network Management Protocol (SNMP). The service is little more than
- an interface to IP.
-
- UDP is a connectionless datagram delivery service that does not
- guarantee delivery. UDP does not maintain an end-to-end connection
- with the remote UDP module; it merely pushes the datagram out on the
- net and accepts incoming datagrams off the net.
-
- UDP adds two values to what is provided by IP. One is the
- multiplexing of information between applications based on port
- number. The other is a checksum to check the integrity of the data.
-
- 6.1 Ports
-
- How does a client on one computer reach the server on another?
-
- The path of communication between an application and UDP is through
- UDP ports. These ports are numbered, beginning with zero. An
- application that is offering service (the server) waits for messages
- to come in on a specific port dedicated to that service. The server
- waits patiently for any client to request service.
-
- For instance, the SNMP server, called an SNMP agent, always waits on
- port 161. There can be only one SNMP agent per computer because
- there is only one UDP port number 161. This port number is well
- known; it is a fixed number, an internet assigned number. If an SNMP
- client wants service, it sends its request to port number 161 of UDP
- on the destination computer.
-
- When an application sends data out through UDP it arrives at the far
- end as a single unit. For example, if an application does 5 writes
- to the UDP port, the application at the far end will do 5 reads from
- the UDP port. Also, the size of each write matches the size of each
- read.
-
- UDP preserves the message boundary defined by the application. It
- never joins two application messages together, or divides a single
- application message into parts.
-
- 6.2 Checksum
-
- An incoming IP packet with an IP header type field indicating "UDP"
- is passed up to the UDP module by IP. When the UDP module receives
- the UDP datagram from IP it examines the UDP checksum. If the
- checksum is zero, it means that checksum was not calculated by the
- sender and can be ignored. Thus the sending computer's UDP module
- may or may not generate checksums. If Ethernet is the only network
- between the 2 UDP modules communicating, then you may not need
-
-
-
- Socolofsky & Kale [Page 23]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- checksumming. However, it is recommended that checksum generation
- always be enabled because at some point in the future a route table
- change may send the data across less reliable media.
-
- If the checksum is valid (or zero), the destination port number is
- examined and if an application is bound to that port, an application
- message is queued for the application to read. Otherwise the UDP
- datagram is discarded. If the incoming UDP datagrams arrive faster
- than the application can read them and if the queue fills to a
- maximum value, UDP datagrams are discarded by UDP. UDP will continue
- to discard UDP datagrams until there is space in the queue.
-
- 7. Transmission Control Protocol
-
- TCP provides a different service than UDP. TCP offers a connection-
- oriented byte stream, instead of a connectionless datagram delivery
- service. TCP guarantees delivery, whereas UDP does not.
-
- TCP is used by network applications that require guaranteed delivery
- and cannot be bothered with doing time-outs and retransmissions. The
- two most typical network applications that use TCP are File Transfer
- Protocol (FTP) and the TELNET. Other popular TCP network
- applications include X-Window System, rcp (remote copy), and the r-
- series commands. TCP's greater capability is not without cost: it
- requires more CPU and network bandwidth. The internals of the TCP
- module are much more complicated than those in a UDP module.
-
- Similar to UDP, network applications connect to TCP ports. Well-
- defined port numbers are dedicated to specific applications. For
- instance, the TELNET server uses port number 23. The TELNET client
- can find the server simply by connecting to port 23 of TCP on the
- specified computer.
-
- When the application first starts using TCP, the TCP module on the
- client's computer and the TCP module on the server's computer start
- communicating with each other. These two end-point TCP modules
- contain state information that defines a virtual circuit. This
- virtual circuit consumes resources in both TCP end-points. The
- virtual circuit is full duplex; data can go in both directions
- simultaneously. The application writes data to the TCP port, the
- data traverses the network and is read by the application at the far
- end.
-
- TCP packetizes the byte stream at will; it does not retain the
- boundaries between writes. For example, if an application does 5
- writes to the TCP port, the application at the far end might do 10
- reads to get all the data. Or it might get all the data with a
- single read. There is no correlation between the number and size of
-
-
-
- Socolofsky & Kale [Page 24]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- writes at one end to the number and size of reads at the other end.
-
- TCP is a sliding window protocol with time-out and retransmits.
- Outgoing data must be acknowledged by the far-end TCP.
- Acknowledgements can be piggybacked on data. Both receiving ends can
- flow control the far end, thus preventing a buffer overrun.
-
- As with all sliding window protocols, the protocol has a window size.
- The window size determines the amount of data that can be transmitted
- before an acknowledgement is required. For TCP, this amount is not a
- number of TCP segments but a number of bytes.
-
- 8. Network Applications
-
- Why do both TCP and UDP exist, instead of just one or the other?
-
- They supply different services. Most applications are implemented to
- use only one or the other. You, the programmer, choose the protocol
- that best meets your needs. If you need a reliable stream delivery
- service, TCP might be best. If you need a datagram service, UDP
- might be best. If you need efficiency over long-haul circuits, TCP
- might be best. If you need efficiency over fast networks with short
- latency, UDP might be best. If your needs do not fall nicely into
- these categories, then the "best" choice is unclear. However,
- applications can make up for deficiencies in the choice. For
- instance if you choose UDP and you need reliability, then the
- application must provide reliability. If you choose TCP and you need
- a record oriented service, then the application must insert markers
- in the byte stream to delimit records.
-
- What network applications are available?
-
- There are far too many to list. The number is growing continually.
- Some of the applications have existed since the beginning of internet
- technology: TELNET and FTP. Others are relatively new: X-Windows and
- SNMP. The following is a brief description of the applications
- mentioned in this tutorial.
-
- 8.1 TELNET
-
- TELNET provides a remote login capability on TCP. The operation and
- appearance is similar to keyboard dialing through a telephone switch.
- On the command line the user types "telnet delta" and receives a
- login prompt from the computer called "delta".
-
- TELNET works well; it is an old application and has widespread
- interoperability. Implementations of TELNET usually work between
- different operating systems. For instance, a TELNET client may be on
-
-
-
- Socolofsky & Kale [Page 25]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- VAX/VMS and the server on UNIX System V.
-
- 8.2 FTP
-
- File Transfer Protocol (FTP), as old as TELNET, also uses TCP and has
- widespread interoperability. The operation and appearance is as if
- you TELNETed to the remote computer. But instead of typing your
- usual commands, you have to make do with a short list of commands for
- directory listings and the like. FTP commands allow you to copy
- files between computers.
-
- 8.3 rsh
-
- Remote shell (rsh or remsh) is one of an entire family of remote UNIX
- style commands. The UNIX copy command, cp, becomes rcp. The UNIX
- "who is logged in" command, who, becomes rwho. The list continues
- and is referred to collectively to as the "r" series commands or the
- "r*" (r star) commands.
-
- The r* commands mainly work between UNIX systems and are designed for
- interaction between trusted hosts. Little consideration is given to
- security, but they provide a convenient user environment.
-
- To execute the "cc file.c" command on a remote computer called delta,
- type "rsh delta cc file.c". To copy the "file.c" file to delta, type
- "rcp file.c delta:". To login to delta, type "rlogin delta", and if
- you administered the computers in a certain way, you will not be
- challenged with a password prompt.
-
- 8.4 NFS
-
- Network File System, first developed by Sun Microsystems Inc, uses
- UDP and is excellent for mounting UNIX file systems on multiple
- computers. A diskless workstation can access its server's hard disk
- as if the disk were local to the workstation. A single disk copy of
- a database on mainframe "alpha" can also be used by mainframe "beta"
- if the database's file system is NFS mounted on "beta".
-
- NFS adds significant load to a network and has poor utility across
- slow links, but the benefits are strong. The NFS client is
- implemented in the kernel, allowing all applications and commands to
- use the NFS mounted disk as if it were local disk.
-
- 8.5 SNMP
-
- Simple Network Management Protocol (SNMP) uses UDP and is designed
- for use by central network management stations. It is a well known
- fact that if given enough data, a network manager can detect and
-
-
-
- Socolofsky & Kale [Page 26]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- diagnose network problems. The central station uses SNMP to collect
- this data from other computers on the network. SNMP defines the
- format for the data; it is left to the central station or network
- manager to interpret the data.
-
- 8.6 X-Window
-
- The X Window System uses the X Window protocol on TCP to draw windows
- on a workstation's bitmap display. X Window is much more than a
- utility for drawing windows; it is entire philosophy for designing a
- user interface.
-
- 9. Other Information
-
- Much information about internet technology was not included in this
- tutorial. This section lists information that is considered the next
- level of detail for the reader who wishes to learn more.
-
- o administration commands: arp, route, and netstat
- o ARP: permanent entry, publish entry, time-out entry, spoofing
- o IP route table: host entry, default gateway, subnets
- o IP: time-to-live counter, fragmentation, ICMP
- o RIP, routing loops
- o Domain Name System
-
- 10. References
-
- [1] Comer, D., "Internetworking with TCP/IP Principles, Protocols,
- and Architecture", Prentice Hall, Englewood Cliffs, New Jersey,
- U.S.A., 1988.
-
- [2] Feinler, E., et al, DDN Protocol Handbook, Volume 2 and 3, DDN
- Network Information Center, SRI International, 333 Ravenswood
- Avenue, Room EJ291, Menlow Park, California, U.S.A., 1985.
-
- [3] Spider Systems, Ltd., "Packets and Protocols", Spider Systems
- Ltd., Stanwell Street, Edinburgh, U.K. EH6 5NG, 1990.
-
- 11. Relation to other RFCs
-
- This RFC is a tutorial and it does not UPDATE or OBSOLETE any other
- RFC.
-
- 12. Security Considerations
-
- There are security considerations within the TCP/IP protocol suite.
- To some people these considerations are serious problems, to others
- they are not; it depends on the user requirements.
-
-
-
- Socolofsky & Kale [Page 27]
-
- RFC 1180 A TCP/IP Tutorial January 1991
-
-
- This tutorial does not discuss these issues, but if you want to learn
- more you should start with the topic of ARP-spoofing, then use the
- "Security Considerations" section of RFC 1122 to lead you to more
- information.
-
- 13. Authors' Addresses
-
- Theodore John Socolofsky
- Spider Systems Limited
- Spider Park
- Stanwell Street
- Edinburgh EH6 5NG
- United Kingdom
-
- Phone:
- from UK 031-554-9424
- from USA 011-44-31-554-9424
- Fax:
- from UK 031-554-0649
- from USA 011-44-31-554-0649
-
- EMail: TEDS@SPIDER.CO.UK
-
-
- Claudia Jeanne Kale
- 12 Gosford Place
- Edinburgh EH6 4BJ
- United Kingdom
-
- Phone:
- from UK 031-554-7432
- from USA 011-44-31-554-7432
-
- EMail: CLAUDIAK@SPIDER.CO.UK
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Socolofsky & Kale [Page 28]
-